import http from "@/axios/index.js";
import {handleSuccess,handleError} from "@/api/index.js";

export const UserApi = {

    /**
     * 公众用户注册
     * @param {Object} data - 注册数据
     * @param {String} data.phone - 手机号
     * @param {String} data.password - 密码
     * @param {String} data.name - 姓名
     * @param {String} [data.idCard] - 身份证号(可选)
     * @returns {Promise} 包含注册结果的Promise
     */
    registerPublic: (data) => http.post('/user/register/public', data)
        .then(res => {
           return handleSuccess(res, '公众注册')
        })
        .catch(error => {
            handleError(error, '公众注册', '注册失败，请检查手机号格式')
        } ),

    //注册
    /**
     *
     * @param params
     */
    register(data) {
        return http.post('/register', {data:data})
            .then(res => handleSuccess(res, '获取用户列表'))
            .catch(error => handleError(error, '获取用户列表失败', '服务器连接异常'))
    },

    //获取验证码
    getCaptcha(params) {
        return http.get('/captcha', {params:params})
            .then(res => handleSuccess(res, '获取验证码'))
            .catch(error => handleError(error, '获取验证码失败', '服务器连接异常'))
    },

    //获取用户信息
    getUserInfo(id) {
        return http.get(`/user/info/${id}`, {})
           .then(res => handleSuccess(res, '获取用户信息'))
            .catch(error => handleError(error, '获取用户信息失败', '服务器连接异常'))
    },

    /**
     * @param phone
     * @param password
     * @param captcha
     *
     */
     login(data) {
        return http.post('/api/login', data)
            .then(res => handleSuccess(res, '登录'))
            .catch(error => handleError(error, '登录失败', '服务器连接异常'))
    },
    //退出登录
    logout(data) {
        return http.post('/logout', {data: data})
    },
    //更新用户
    updateUser(data) {
        return http.put('/user/update', {data: data})
    },
    //更新部分用户信息
    updateUserPart(data) {
        return http.patch('/user/update', {data:data})
    }

}